# Contributor: Nathan Johnson <nathan@nathanjohnson.info>
# Maintainer: Nathan Johnson <nathan@nathanjohnson.info>
pkgname=libcouchbase
pkgver=2.10.6
pkgrel=0
pkgdesc="C client library for Couchbase"
url="https://developer.couchbase.com/community"
arch="all"
license="Apache-2.0"
depends_dev="musl-dev openssl-dev snappy-dev"
makedepends="$depends_dev cmake perl libtool libev-dev libevent-dev libuv-dev"
subpackages="$pkgname-dev $pkgname-bin $pkgname-doc $pkgname-libevent $pkgname-libev $pkgname-libuv"
source="$pkgname-$pkgver.tar.gz::https://github.com/couchbase/libcouchbase/archive/$pkgver.tar.gz
	fix_socktest.patch"

build() {
	mkdir "$builddir"/build
	cd "$builddir"/build
	../cmake/configure \
		--prefix=/usr \
		--skip-git-version \
		--disable-couchbasemock
	make
}

check() {
	cd "$builddir"/build
	ctest -E 'check-(select|libevent|libev|libuv)-sock-tests'
}

package() {
	cd "$builddir"/build
	make install DESTDIR="$pkgdir"
}

dev() {
	default_dev
	mv "$subpkgdir"/usr/bin/cbc-write-config \
		"$pkgdir"/usr/bin
	rmdir "$subpkgdir"/usr/bin
}

libevent() {
	pkgdesc="$pkgdesc (libevent backend)"
	depends="$pkgname libevent"

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libcouchbase_libevent.so "$subpkgdir"/usr/lib
}

libev() {
	pkgdesc="$pkgdesc (libev backend)"
	depends="$pkgname libev"

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libcouchbase_libev.so "$subpkgdir"/usr/lib
}

libuv() {
	pkgdesc="$pkgdesc (libuv backend)"
	depends="$pkgname libuv"

	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/libcouchbase_libuv.so "$subpkgdir"/usr/lib
}

bin() {
	pkgdesc="$pkgdesc (command line utilities)"
	depends="$pkgname"

	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
}

sha512sums="d758bd93d8f67406d5db87deec7424e6e62360ef843f10e74a8c34a5a30cbcc075d2ffbfb6e582786c571f1bdc32c5b6f3a9522c4e8e6803aa2857ee87627cca  libcouchbase-2.10.6.tar.gz
72319b86fdd91728723ccb091e72199788a84e2ec9ea12c0fcd1ed686eb155ec11e0addbff96735f83e7f31764a85650f0483b6e76d3a8bee16f71b2751fe4a9  fix_socktest.patch"
